APP = {};

/**
 * 获取表单值
 * @param itemForm
 */
APP.getFormValue = function (itemForm) {
    var nameIndex = {} //数组 name 索引
        ,field = {}
        ,fieldElem = itemForm.find('input,select,textarea'); //获取所有表单域

    layui.each(fieldElem, function(_, item){
        item.name = (item.name || '').replace(/^\s*|\s*&/, '');

        if(!item.name) return;

        //用于支持数组 name
        if(/^.*\[\]$/.test(item.name)){
            var key = item.name.match(/^(.*)\[\]$/g)[0];
            nameIndex[key] = nameIndex[key] | 0;
            item.name = item.name.replace(/^(.*)\[\]$/, '$1['+ (nameIndex[key]++) +']');
        }

        if(/^checkbox|radio$/.test(item.type) && !item.checked) return;
        field[item.name] = item.value;
    });

    return field;
};

/**
 * ajax表单提交
 * @param url url
 * @param data 表单数据
 * @param success 成功
 * @param type 请求类型，默认POST
 */
APP.ajaxSubmit = function(url, data, success, type){
    if ( $.isFunction( data ) ) {
        type = type || success;
        success = data;
        data = undefined;
    }
    $.ajax({
        url: url
        ,type: type || "POST"
        ,data: data || {}
        ,dataType: 'json'
        ,success: success
        ,error: function (XMLHttpRequest, textStatus, errorThrown) {
            $.toptip('操作失败', 'error');
            this; // 调用本次AJAX请求时传递的options参数
        }
    });

};

/**
 * ajax请求返回数据处理
 * @param res 返回数据
 * @param success 成功函数
 * @param fail 失败函数
 */
APP.ajaxRes = function (res, success, fail) {
    if(res.code === "0"){
        if(success){
            if(typeof success === "function"){
                success(res.data, res.msg);
            }else {
                $.toptip(success, 'success');
            }
        }else {
            $.toptip(res.msg || '操作成功', 'success');
        }
    }else {
        if(fail){
            if(typeof fail === "function"){
                fail(res.msg);
            }else {
                $.toptip(fail, 'error');
            }
        }else {
            $.toptip(res.msg || '操作失败', 'error');
        }
    }
};

APP.submitAction = function (item, action) {
    item.off('click').on('click', function () {
        APP.disabled(item , true);
        item.addClass("weui-btn_disabled");
        let reload = action(item);
        if(reload){
            APP.disabled(item);
        }
    });

};

APP.disabled = function (item, disabled) {
    if(disabled){
        item.addClass("weui-btn_disabled");
    }else {
        item.removeClass("weui-btn_disabled");
    }
};
